home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Private.h
-
- Contains: QuickDraw GX to PostScript conversion code.
- contains the includes for the
- GX to PostScript imaging engine
-
- Version: Technology: Quickdraw GX 1.1.x
-
- Copyright: © 1990-1997 by Apple Computer, Inc., all rights reserved.
- */
-
- #ifndef __PRIVATE__
- #define __PRIVATE__
-
- #include "GXToPSBuildConfig.h"
-
- #if DEBUGLEVEL > 0
- #define TIMEIE
- #endif
-
- //#include "GXErrors.h"
- #include <CMApplication.h>
- #include <GXGraphics.h>
- #include "RDUtil.h"
- #include "PublicPostScriptIE.h"
- #include "FontHandler.h"
- #include "GXExceptions.h"
-
-
- #define kUnderlineCheckMask (gxUnderlineAdvanceLayer | gxSkipWhiteSpaceLayer | gxUnderlineIntervalLayer | gxUnderlineContinuationLayer)
-
- /** subtract this value from result of GetTagStructure because of gx graphics bug in d24 **/
-
-
- #define tagStructureBugOffset 0
-
-
- /****** Define fill key Macros for RDResPrintf %s parameter *********/
- #define kEvenOddFillKey "\pEo"
- #define kWindingFillKey "\pW"
- #define kFrameFillKey "\pFr"
- #define kInverseFillKey "\pIn"
- #define kNoFillKey "\pNo"
-
-
- /*********** Define some PostScript constants *************/
-
- #define eMiterJoin 0
- #define eRoundJoin 1
- #define eBevelJoin 2
-
- #define kInitLineWidth ff(1)
- #define kInitMiterLim ff(1)
- #define kInitFlat ff(1)
-
-
- /***** Glyph Positioning Bias codes ********/
- typedef enum {
-
- eAllVertical = 1, // If all of the x positions are the same
- eAllHorizontal = 2, // If all of the y positions are the same
- eMixed = 3, // If some are different.
- eAllEqual = 4 // This one is only useful for deltas, not positions.
-
- } TGlyphPosBias;
-
-
- /*** flags for current imaging engine state ***/
-
- typedef enum {
-
- eSimpleStyle = 0x01L, // Is the shape renderable by stroke, fill, rather than QD2Fill?
- eTmodeOutOfDate = 0x02L, // Is transfer mode in graphics state invalid for some reason?
- eStyleOutOfDate = 0x04L, // Is style in graphics state invalid for some reason?
- eTransformOutOfDate = 0x08L, // Is transform in graphics state invalid for some reason?
- eFontOutOfDate = 0x10L, // Is font in graphics state invalid for some reason?
- eHasDash = 0x20L, // Did the last style have a dash?
- eHasPattern = 0x40L, // Did the last style have a pattern?
- eColorOutOfDate = 0x80L, // Is the color in the graphics state out of date?
- eColorSetOutOfDate = 0x100L, // Is the color set in the graphics state out of date?
- ePSContinueNext = 0x200L, // In the midst of postscript broken up over multiple shapes.
-
- eInkOutOfDate = (eTmodeOutOfDate | eColorOutOfDate),
-
- eInitializeGstate = (eColorSetOutOfDate | eInkOutOfDate | eStyleOutOfDate | eTransformOutOfDate | eFontOutOfDate)
-
- } TIEStateFlags;
-
- /*** Flags for PSPrimitiveShape ***/
-
- typedef enum {
-
- eApplyDash = 0x01L,
- eApplyPattern = 0x02L,
- eApplyJoin = 0x04L,
- eApplyCaps = 0x08L,
- eApplyPen = 0x10L,
-
- eApplyFrameStyle = (eApplyDash | eApplyJoin | eApplyCaps | eApplyPen),
-
- eApplyAll = (eApplyFrameStyle | eApplyPattern)
-
- } TIEPrimitiveFlag;
- typedef unsigned long TIEPrimitiveFlags;
-
- /******** Some handy macros ****************/
-
- /****************************
- NEXTBIT, PREVBIT:
- Used for tranversal of bit arrays.
-
- theBit: Boolean, true if bit was set.
- theLong: pointer to the current longword in bit array.
- theMask: current long word mask. Initialize to 0x80000000 for first bit in array.
-
- NEXTBIT Checks current bit and then advances mask
- PREVBIT rolls back mask and then checks bit.
-
- *****************************/
- #define NEXTBIT(theBit, theLong, theMask) {\
- theBit = ((*theLong & theMask) != 0); \
- if (!(theMask>>=1)) \
- {theMask = 0x80000000; ++theLong;} \
- }
-
- #define PREVBIT(theBit, theLong, theMask) {\
- if (!(theMask<<1)) \
- {theMask = 0x00000001; --theLong;} \
- theBit = ((*theLong & theMask) != 0); \
- }
-
-
-
-
- /****************************************
- Macro to interpolate between two points.
-
- p: The point that will get the result.
- p1: The first point to interpolate between
- p2: The second point to interpolate between
-
- *****************************************/
-
- // Code to average two fixed point numbers. Taken from gx graphics file "paths.h" Does math in 33 bits.
-
- #ifdef asm68000
- #pragma parameter __D0 Average(__D0, __D1)
- long Average(long x, long y) = { 0xD081, 0x6804, 0xE290, 0x6002, 0xE280 };
- /* add.l d1,d0; bvc.s 4(pc); roxr.l #1,d0; bra.s 2(pc); asr.l #1,d0 */
- #else
- static long Average(register long x, register long y) { return (x >> 1) + (y >> 1) + ((x & y) & 1); }
- #endif
-
-
- #define INTERPPOINT(p, p1, p2) {\
- (p).x = Average( (p1).x, (p2).x) ; \
- (p).y = Average( (p1).y, (p2).y) ; \
- }
-
-
-
-
- /*********************************************
-
- Macro to convert a color component which is an
- unsigned short into a fixed point value between
- zero and one.
-
- ***********************************************/
-
- /* normal color components: 65535 = 1.0 */
- #define COMPONENTtoFIXED(component) FixedDivide( (Fixed)(component), (Fixed)0x0000FFFF )
- /* XYZ color components: 32768 = 1.0 */
- #define XYZCOMPONENTtoFIXED(component) ( 2 * COMPONENTtoFIXED(component) )
-
-
- /** Macro to test a shape for picture type **/
- #define TestShapeTypePict( sh ) (GXGetShapeType(sh) == gxPictureType)
-
-
- // data structures
-
- /*** Flags for nested graphics states ***/
- enum {
-
- eNoGstateFlags = 0x00000000,
- eGstateDidSave = 0x00000001 // set if a SAVE (font Handler etc…) was done at this level.
-
- };
- typedef long TgstateFlags;
-
-
-
- /***************************
-
- Data structure to represent the
- nestable graphics state on the printer.
- These things will not be preserved across
- grestores.
-
- ****************************/
- typedef struct {
-
- gxColorProfile currProfile; // This is only used in Level-2 color
- gxColorSpace currSpace; // This is only used in Level-2 color
- long /*bool*/ level2DevSpace; // This is only used in Level-2 color - whether or not we are using a device space rather than matching.
- gxColor currColor; // Color will be part of the nest because it is to hard to make persistant across grestores.
- gxInk theInk; // The ink for this level.
- gxTag halftoneTag; // halftone tag from this ink.
- gxTransform theTransform; // the gx graphics transform for this level.
- long pointsAvail; // The number of points left after this level's clip.
- TgstateFlags flags; // flags for this level.
-
- } TGstate;
-
-
-
-
- /*************************************
- Data structure for Imaging Engine
- Global data.
-
- A note about the pRDParams field.
- Every IE interface routine must
- allocate an RD parameter block on the
- stack and assign this field to be
- its address. Anybody down the call
- chain may depend on this being there.
-
- Doing it this way avoids having to have
- the record in the context handle, forcing
- us to lock the handle whenever we call
- an RDUtility routine.
-
- A note on the initializeGstate bit fields:
- This is set to true at the beginning
- of the PostScriptInitGraphics routine.
- drones and primitives that modify the graphics state
- look at this to see if they should output the primitive (color, font, etc…)
- whether or not it matches the one in the current graphics
- state cache. PostScriptInitGraphis resets this
- to false when it is done.
-
- The effect of it accidentally being true is not fatal,
- it just causes the gstate value to be output whether or
- not it was the same as the current one.
-
- *************************************/
-
- typedef struct {
-
- CGXtoPostScriptDevice *psDevice; // Device for I/O
-
- gxPostScriptImageDataRec params; // Imaging parameters from EnterPS
- TCompatibilityFlags compatFlags; // Old app Compatability flags.
-
- #ifdef usePerfLib
- TP2PerfGlobals perfGlobals; // performance library globals.
- #endif
-
- gxMapping deviceMapping; // Mapping from userspace to device coordinates on printer.
-
- TFontHandlerContext fhContext; // Font Handler context.
-
- TRDMapHdl rdMap; // Resource Dump Utilities map.
- TRDParams* pRDParams; // Pointer to an RD parameter block.
-
-
- gxColorSet graySet; // Color set for 8-bit gray image operator.
- gxColorProfile defaultProfileCopy; // A copy of the default we can own.
-
- /*****
- Stuff for timing in debug builds.
- ******/
- #ifdef TIMEIE
- long pageTime;
- long shapeTime;
- long shapeCount;
- #endif
-
- /*****
- Actual work spaces are allocated at end of this block for more efficient referencing
- of this data structure. Additionally, the maximum number of blocks will be max-gsaves.
- *****/
- long offsetToWorkspace; // amount to add to address of globals to get to workspace array
- short workSpaceIndex; // Current work space index.
- Handle hWorkSpace; // Current work space handle;
-
- long ieStateFlags; // Current state of Imaging. (See enumeration above)
-
- /****
- Save original shape in case the Imaging Engine (or font handleur) has to modify
- them for translation to PostScript
- ****/
- gxShape saveShape;
-
- /*** Persistant Graphics State Fields ***/
-
- Fixed lineWidth;
- short lineCap;
- short lineJoin;
- Fixed curveFlat;
- Fixed miterLimit;
- short orMode; // Bitmap or transfer mode.
- gxColorSet theColorSet; // Current color set.
- long psFrameValue; // Value for SetFrame proc (0=center, 1 = inside, -1 = outside)
- Boolean currRightIsOut;
- gxStyle theStyle;
-
- // Information concerning current font in Persistant graphics state.
-
- fhFont theFont; // Font Handler font reference (wrapper for GX font reference that resolves variations).
- long fontChild; // Font Handler child font index for font handler multiply encoded fonts.
- Fixed fontSize; // Point size of current9tate.
- gxStyle textStyle; // Current text style for comparing text-faces.
- gxPoint fontTangent; // Current tangent for text on a path (or mixed vertical/horizontal)
-
-
- /******
- Nested graphics state fields:
- pBaseGstate will point to gStateArray[0]
- gStateNest will point to gStateArray[1], hench gStateNest[0] is
- gStateArray[1] and gStateNest[-1] will be gStateArray[0] which is
- the base graphics state. This allows
- gStateNest's indeces be in phase with the transform list indecs that
- come into PostScriptDrawShape
- *******/
-
- short gStateDepth; // Current depth of graphics state stack.
- TGstate* baseGstate; // Pointer to the base graphics state (will point to gSTateArray[0]);
- TGstate* gStateNest; // Pointer to the nested graphics states. (will piont to gStateArray[1]);
- TGstate gStateArray[1]; // Stack o'graphics states, one for each transform level plus the base level.
-
- /** Reentrant workspace handles **/
-
- Handle hWorkSpaces[1]; // Array of workspace handles.
-
-
- } TIEGlobalsRec, *TIEGlobalsPtr, **TIEGlobalsHdl;
-
-
- typedef enum {
-
- eNoGeomOptions = 0X00L, // Implies direct output for rendering
- eMakeProcedure = 0X01L, // For dashes, patterns, aux shapes, clips in transform dicts.
- eBreakContours = 0X02L, // For break-dash
- eClipGeometry = 0X04L // This is set when the geometry is for a clip.
-
- } GeometryOptions;
-
- typedef long TgeometryOptions;
-
-
-
-
- typedef struct {
-
- long nChars;
- long byteCount;
- long nStyles;
- unsigned char *glyphs;
- char *text8;
- gxPoint *positions;
- gxPoint *tangents;
- unsigned long *advanceBits;
- gxStyle *styles;
- short *runs;
- unsigned long *fhUserData; // Font Handler user data.
- gxPoint *absPositions; // Absolute positions for all glyphs, needed in level-2.
- long fhUserDataSize; // How big is font handleur data.
-
- unsigned long advMask; // Mask for traversing advance bits.
- unsigned long* advLong; // Pointer into current long full o'advance bits.
-
- unsigned long twoByteMask; // mask for traversing 1-or-2 byte bits.
- unsigned long* twoByteLong; // Pointer into current long full o'1-or-2 byte bits.
-
- unsigned char* currByte; // Pointer to byte we are currently at in shape.
-
- } TGlyphDataRec;
-
-
- /**** Internal Procedures *******/
-
-
- /**********************/
- /* Linked-In Routines */
- /**********************/
-
- OSErr PSIEBufferData(TIEGlobalsHdl hIEGlobals, unsigned char *data, long length, long flags);
-
-
- long GetPSLineJoin(gxJoinRecord* theJoin);
- Fixed SkiaMiterToPS(Fixed miterValue, Fixed lineWidth);
- void ResetShapeStyle(gxShape);
- void ResetShapeTransform(gxShape);
- OSErr PSPrimitiveShape(gxShape theShape, TIEPrimitiveFlags flags);
- OSErr PSTextToPaths(gxShape theShape);
- void ConcatTransform(gxTransform source, gxTransform operand);
- OSErr MapWholeShape(gxShape theShape, gxMapping *theMapping);
- Boolean TestInkModeCopy( gxInk shInk );
- short TestInkModeOr( gxInk shInk );
- Boolean TestMappingEqual( gxMapping *oneMapping, gxMapping *twoMapping );
- Boolean TestMappingPerspective( gxMapping *theMapping);
- Boolean TestMappingIdentity( gxMapping *theMapping);
- OSErr PSReleaseWorkSpace(TIEGlobalsHdl hGlobals);
- OSErr PSSetWorkSpaceSize(TIEGlobalsHdl hGlobals, long newSize);
- void DisposeGstateItems(TGstate *pGstate);
-
- gxColorSet CreateGrayColorSet(void);
-
-
- long GetColorProfileSize(gxColorProfile theProfile, long *profileVersion);
-
- OSErr DoBeginProcedure(TIEGlobalsHdl hGlobals);
- OSErr DoEndProcedure(TIEGlobalsHdl hGlobals);
- OSErr DoBeginArray(TIEGlobalsHdl hGlobals);
- OSErr DoEndArray(TIEGlobalsHdl hGlobals);
- OSErr DoFillKey(TRDParams* pRDParams, gxShapeFill theFill);
- OSErr DoNull(TRDParams *rdParams);
- OSErr BeginProcSetDict(TRDParams *rdParams);
- OSErr EndProcSetDict(TRDParams *rdParams);
- OSErr OutputTag(TIEGlobalsHdl hGlobals, gxTag theTag);
-
- Boolean TestStyleDash(gxStyle theStyle);
- Boolean TestStylePattern(gxStyle theStyle);
-
- Boolean TestMiterMatters(gxShape theShape, gxJoinRecord *theJoin, Fixed pen);
- Boolean TestNonCenterShapeCanBeInset(gxShape theShape, gxStyle theStyle);
-
- OSErr AnalyzeTextFace(TIEGlobalsHdl hIEGlobals, gxShape theShape, Boolean *hasUnderline, Boolean *notPostscriptable);
- Boolean TestDashPostScriptable(gxShape theShape, gxDashRecord *theDash, gxStyleAttribute theAttr);
-
-
- Boolean PSEqualColorSet(gxColorSet set1, gxColorSet set2);
- Boolean PSEqualInk(gxInk ink1, gxInk ink2);
- Boolean PSEqualTransform(gxTransform transform1, gxTransform transform2);
- Boolean PSEqualStyle(gxStyle style1, gxStyle style2);
- void PSDisposeColorSet(gxColorSet theSet);
-
- #define gxQuickDrawPictType 100
- gxShapeType QGXGetShapeType(gxShape source);
-
-
- /****
- Tag identifier for shapes that have been pre-rasterized,
- used for 2-byte text when font downloading is too slow.
- Tag contents is a mapping to be used as the additional mapping
- for the ImageMask operation. Tag also implies or-mode - handled in PS code.
- ****/
- #define rasterizedShapeTag 0x70737273 /* 'psrs' */
- OSErr PSRasterizeShape(TIEGlobalsHdl hIEGlobals, gxShape theShape, gxTransform *parents, long nTransforms);
-
-
-
-
- void MakePatternPostScriptable(gxPatternRecord *thePattern, gxStyleAttribute theAttr);
- void SwapShapeAndBitmapClip(gxShape theShape);
-
- OSErr DupShapeIfNecessary(gxShape theShape, gxShape* newShape);
-
- long GetPSFrameValue(gxStyleAttribute theAttributes);
-
-
- OSErr TransformDrone(TIEGlobalsHdl hIEGlobals, gxTransform theTransform);
-
-
- /** Data Structures to Dictionaries **/
-
- OSErr MakeShapeDict(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions theOptions);
-
- OSErr MakeStyleDict(TIEGlobalsHdl hIEGlobals, gxStyle theStyle);
-
- OSErr MakeTransformDict(TIEGlobalsHdl hIEGlobals, gxTransform theTransform);
-
-
-
-
- void DoNothingNoticeFunction( gxGraphicsNotice theNotice );
-
-
- /**** Web 'o Doom Procedures *****/
-
- /* Primary Drones */
-
- OSErr ValidateFillShape(TIEGlobalsHdl hIEGlobals, gxShape *theShape);
-
- OSErr ShapeDrone(TIEGlobalsHdl hIEGlobals, gxShape theShape, gxTransform *parents, long depth);
-
- OSErr ResolveComplexTransform(TIEGlobalsHdl hIEGlobals, gxTransform *parents, long *depth,
- gxShape *pShape);
-
-
-
-
- /** Low level glyph handling routines **/
- OSErr ProcessGlyphGroupPosL1(short nGlyphs, gxPoint *positions, char *text8, long byteCount,
- TRDParams *rdParams, TGlyphPosBias theBias, long addToIndex);
-
- OSErr ProcessGlyphGroupPosL2(TIEGlobalsHdl hIEGlobals, short nGlyphs, gxPoint *positions, char *text8, long byteCount,
- TRDParams *rdParams, TGlyphPosBias theBias, long addToIndex, gxPoint *nextDelta);
-
-
- /** Really primitive primitives **/
-
- OSErr DoMoveto(TRDParams *rdParams, gxPoint *thePoint);
-
- OSErr DoClosepath(TRDParams *rdParams);
-
- OSErr DoPoint(TRDParams *rdParams, gxPoint *thePoint);
-
- OSErr DoRmoveto(TRDParams *rdParams, gxPoint *thePoint);
-
-
- /*** Graphics State Primitive Routines ******/
-
-
- OSErr MappingPrimitive(TIEGlobalsHdl, gxMapping *theMapping);
-
- OSErr RGBColorPrimitive(TIEGlobalsHdl hIEGlobals, gxRGBColor *theRGB);
-
- OSErr GrayColorPrimitive(TIEGlobalsHdl hIEGlobals, unsigned short theGray);
-
- OSErr CMYKColorPrimitive(TIEGlobalsHdl hIEGlobals, gxCMYKColor *theCMYK);
-
- OSErr Level2ColorPrimitive(TIEGlobalsHdl hIEGlobals, gxColor *theColor);
-
- OSErr ColorSetPrimitive(TIEGlobalsHdl hIEGlobals, gxColorSet theSet, gxColorProfile theProfile );
-
- OSErr FrameStylePrimitive(TIEGlobalsHdl hIEGlobals, gxStyle theStyle);
-
- OSErr MiscStylePrimitive(TIEGlobalsHdl hIEGlobals, gxStyle theStyle);
-
- OSErr FixGraphicsState(TIEGlobalsHdl hGlobals, Boolean didRestore, Boolean didSave);
-
- /**** ColorSync PostScript data management routines ******/
-
- pascal OSErr ICCProfileStreamProc(long command, long *size, void *data, TIEGlobalsHdl hIEGlobals);
-
- OSErr MakeCRDAvailable(TIEGlobalsHdl hIEGlobals, CMProfileRef theICCProf);
-
-
- // Segmented Routines also called internally from within the same segment...
-
-
- #if GENERATING68K
- OSErr _DoGsave(TIEGlobalsHdl hIEGlobals, Boolean internalOnly);
- OSErr _GeometryDrone(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions, gxTransform *parents, long depth);
- OSErr _DoGrestore(TIEGlobalsHdl hIEGlobals, Boolean internalOnly);
- OSErr _TextStylePrimitive(TIEGlobalsHdl hIEGlobals, gxStyle textStyle, gxPoint* pTangent);
- #endif
-
- /**********************/
- /* Segment Dispatches */
- /**********************/
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIEPATHLIMIT_DISPATCH(selector) = CLIENT_DISPATCH(PSIEPathLimitSEG, selector);
- #else
-
- #define PSIEPATHLIMIT_DISPATCH(selector) ;
-
- #define _DissectShape DissectShape
- #define _PSCountShapePoints PSCountShapePoints
-
- #endif
-
- OSErr DissectShape(TIEGlobalsHdl hIEGlobals, gxShape *theShape)
- PSIEPATHLIMIT_DISPATCH(1)
-
- OSErr PSCountShapePoints(gxShape theShape, long contour, long *numPoints)
- PSIEPATHLIMIT_DISPATCH(2)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIEBITMAP_DISPATCH(selector) = CLIENT_DISPATCH(PSIEBitmapSEG, selector);
- #else
- #define PSIEBITMAP_DISPATCH(selector) ;
-
- #define _BitmapPrimitive BitmapPrimitive
- #define _IntersectShapeAndBitmap IntersectShapeAndBitmap
-
- #endif
-
-
- OSErr BitmapPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEBITMAP_DISPATCH(1)
-
- OSErr IntersectShapeAndBitmap(gxShape target, gxShape operand)
- PSIEBITMAP_DISPATCH(2)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIEHALFTONE_DISPATCH(selector) = CLIENT_DISPATCH(PSIEHalftoneSEG, selector);
- #else
-
- #define PSIEHALFTONE_DISPATCH(selector) ;
-
- #define _HalftonePrimitive HalftonePrimitive
-
- #endif
-
- OSErr HalftonePrimitive(TIEGlobalsHdl hIEGlobals, gxFormatHalftoneInfo *halftoneInfo)
- PSIEHALFTONE_DISPATCH(1)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIEPRIMITIVE_DISPATCH(selector) = CLIENT_DISPATCH(PSIEPrimitiveSEG, selector);
- #else
-
- #define PSIEPRIMITIVE_DISPATCH(selector) ;
-
- #define _CubicPrimitive CubicPrimitive
- #define _PathsPrimitive PathsPrimitive
- #define _PolygonsPrimitive PolygonsPrimitive
- #define _PointPrimitive PointPrimitive
- #define _CurvePrimitive CurvePrimitive
- #define _LinePrimitive LinePrimitive
- #define _RectanglePrimitive RectanglePrimitive
- #define _FullShapePrimitive FullShapePrimitive
- #define _EmptyShapePrimitive EmptyShapePrimitive
-
- #endif
-
-
- OSErr CubicPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(1)
-
- OSErr PathsPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(2)
-
- OSErr PolygonsPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(3)
-
- OSErr PointPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(4)
-
- OSErr CurvePrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(5)
-
- OSErr LinePrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(6)
-
- OSErr RectanglePrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(7)
-
- OSErr FullShapePrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(8)
-
- OSErr EmptyShapePrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIEPRIMITIVE_DISPATCH(9)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIETEXT_DISPATCH(selector) = CLIENT_DISPATCH(PSIETextSEG, selector);
- #else
-
- #define PSIETEXT_DISPATCH(selector) ;
-
- #define _TextPrimitive TextPrimitive
- #define _GlyphPrimitive GlyphPrimitive
- #define _SeperateUnderlineShape SeperateUnderlineShape
- #define _TextStylePrimitive TextStylePrimitive
-
- #endif
-
- OSErr TextPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIETEXT_DISPATCH(1)
-
- OSErr GlyphPrimitive(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions)
- PSIETEXT_DISPATCH(2)
-
- OSErr SeperateUnderlineShape(TIEGlobalsHdl hIEGlobals, gxShape theShape)
- PSIETEXT_DISPATCH(3)
-
- OSErr TextStylePrimitive(TIEGlobalsHdl hIEGlobals, gxStyle textStyle, gxPoint* pTangent)
- PSIETEXT_DISPATCH(4)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIESHAPEPARTS_DISPATCH(selector) = CLIENT_DISPATCH(PSIEShapePartsSEG, selector);
- #else
-
- #define PSIESHAPEPARTS_DISPATCH(selector) ;
-
- #define _MakePatternDict MakePatternDict
- #define _MakeDashDict MakeDashDict
- #define _GeometryDrone GeometryDrone
- #define _GetPSLineCap GetPSLineCap
- #define _PostScriptSynonymDrone PostScriptSynonymDrone
- #define _FillShapeDrone FillShapeDrone
- #define _StyleDrone StyleDrone
- #define _DoTransformHiearchy DoTransformHiearchy
- #define _DoGrestore DoGrestore
- #define _TransformDrone TransformDrone
- #define _DoGsave DoGsave
-
- #endif
-
- OSErr MakePatternDict(TIEGlobalsHdl hIEGlobals, gxPatternRecord* pPattern, gxStyleAttribute theAttributes)
- PSIESHAPEPARTS_DISPATCH(1)
-
- OSErr MakeDashDict(TIEGlobalsHdl hIEGlobals, gxDashRecord* pDash, gxStyleAttribute theAttributes)
- PSIESHAPEPARTS_DISPATCH(2)
-
- OSErr GeometryDrone(TIEGlobalsHdl hIEGlobals, gxShape theShape, TgeometryOptions geomOptions, gxTransform *parents, long depth)
- PSIESHAPEPARTS_DISPATCH(3)
-
- OSErr GetPSLineCap(gxStyle theStyle, long *capVal)
- PSIESHAPEPARTS_DISPATCH(4)
-
- OSErr PostScriptSynonymDrone(TIEGlobalsHdl hIEGlobals, gxShape theShape, long nSyn)
- PSIESHAPEPARTS_DISPATCH(5)
-
- OSErr FillShapeDrone(TIEGlobalsHdl hIEGlobals, gxShape theShape, gxTransform *parents, long depth)
- PSIESHAPEPARTS_DISPATCH(6)
-
- OSErr StyleDrone(TIEGlobalsHdl hIEGlobals, gxStyle theStyle)
- PSIESHAPEPARTS_DISPATCH(7)
-
- OSErr DoTransformHiearchy(TIEGlobalsHdl hIEGlobals, gxTransform* parents, long depth, gxShape theShape)
- PSIESHAPEPARTS_DISPATCH(8)
-
- OSErr DoGrestore(TIEGlobalsHdl hIEGlobals, Boolean internalOnly)
- PSIESHAPEPARTS_DISPATCH(9)
-
- OSErr TransformDrone(TIEGlobalsHdl hIEGlobals, gxTransform theTransform)
- PSIESHAPEPARTS_DISPATCH(10)
-
- OSErr DoGsave(TIEGlobalsHdl hIEGlobals, Boolean internalOnly)
- PSIESHAPEPARTS_DISPATCH(11)
-
-
- //-----------------------------------------------------------------------------------------------
-
- #if GENERATING68K
- #define PSIEINK_DISPATCH(selector) = CLIENT_DISPATCH(PSIEInkSEG, selector);
- #else
-
- #define PSIEINK_DISPATCH(selector) ;
-
- #define _InkDrone InkDrone
- #define _ColorSpacePrimitive ColorSpacePrimitive
- #define _CalibratedRGBSpacePrimitive CalibratedRGBSpacePrimitive
- #define _GetLevel2ColorSpace GetLevel2ColorSpace
- #define _RemoveDownloadedCRDs RemoveDownloadedCRDs
-
- #endif
-
-
- OSErr InkDrone(TIEGlobalsHdl hIEGlobals, gxInk theInk)
- PSIEINK_DISPATCH(1)
-
- OSErr ColorSpacePrimitive(TIEGlobalsHdl hIEGlobals, gxColorSpace theSpace, gxColorProfile theProfile,
- Boolean setIt,Boolean *changed)
- PSIEINK_DISPATCH(2)
-
- OSErr CalibratedRGBSpacePrimitive(TIEGlobalsHdl hIEGlobals, gxColorProfile theProfile)
- PSIEINK_DISPATCH(3)
-
- OSErr GetLevel2ColorSpace(gxColorSpace sourceSpace, gxColorProfile theProfile, gxColorSpace *level2Space, long *nComponents, Boolean *useDeviceSpace)
- PSIEINK_DISPATCH(4)
-
- OSErr RemoveDownloadedCRDs(TIEGlobalsHdl hIEGlobals)
- PSIEINK_DISPATCH(5)
-
-
- //-----------------------------------------------------------------------------------------------
-
-
-
-
- #endif
-